package org.seamon.management.util.aspect;

import java.lang.annotation.*;

/**
 * 数据权限控制注解
 *
 * @author Simon
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataPermission {

    /**
     * 使用 SpEL 表达式指定目标用户ID的路径
     * 示例：#id, #dto.id, #userForm.userInfo.userId
     */
    String userIdSpel() default "";

    /**
     * 指定简单参数名（与 SpEL 二选一）
     * 如果同时存在，SpEL 优先级更高
     */
    String userIdParam() default "";

    /**
     * 是否仅限操作自己（默认 true）
     * false 表示还需要结合其他规则（如部门数据权限）
     */
    boolean selfOnly() default true;
}
